home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / uwpc201.zip / UW-SRC.ZIP / README < prev    next >
Text File  |  1991-11-15  |  10KB  |  182 lines

  1.             Instructions to Code Modifiers
  2.             ------------------------------
  3.  
  4.             Copyright 1991 Rhys Weatherley
  5.  
  6. 1. MODIFYING UW/PC.
  7.  
  8. You may modify this code anyway you like (under the terms of the GNU license),
  9. but if you make a derivative version of UW/PC I'd appreciate it if you did
  10. not release it for full public distribution. Giving copies away to your friends
  11. is fine, given the proviso that they don't distribute it around much further
  12. than that.  This way I can keep control of the core UW/PC distribution and
  13. we can avoid heaps of "hacked" copies from hitting the streets.
  14.  
  15. So much for Hitlerism!  If you come up with any good ideas for enhancing UW/PC
  16. and manage to implement something (no matter how primitive or advanced), I'd
  17. like to hear about it so it may be included in further releases of UW/PC.  If
  18. you can make your code fairly self-contained (in a module of its own with
  19. few changes to the main core UW/PC code itself) then it'll be easier for me
  20. to integrate it with the program.  Place the GNU copyright message and your
  21. name at the top of the modules somewhere.  I may need to make minor changes to
  22. your code to make it fit in better, but you'll retain the copyright on your
  23. parts.  Try not to make it DOS specific if you can, because then it'll be
  24. easier to integrate in the upcoming Windows 3.0 version.
  25.  
  26. If you feel that want to write your own UW/PC-like program from scratch (i.e.
  27. a complete replacement for UW/PC), then go right ahead!!  Some competition
  28. will do the whole UW project good.  Just be careful about making "derivative
  29. works" (using large slabs of someone else's code) - I don't care too much
  30. about this part of the copyright law, but it's there so watch yourself.  You
  31. may be interested in one of the enhancements I'll be undertaking for UW/PC
  32. by the end of 1991, which I'll now discuss.
  33.  
  34. Currently in the UW/PC program, if you want to add a new feature then you
  35. need to recompile the code.  This will get very unwieldy sooner or later so
  36. I am proposing to write an external interface standard for UW/PC.  This will
  37. be a set of services for accessing the multi-window management properties of
  38. UW/PC from another program.  So that you can write a program to take advantage
  39. of the UW protocol facilities of UW/PC that will be run as an external client
  40. to UW/PC.  I hope to stablise the core UW/PC setup (both DOS and Windows 3.0
  41. versions) by the end of 1991 and then the primary method of expansion will
  42. be via "third party external clients".  I'm not yet sure what form the
  43. external interface will take yet, but suggestions are welcome.
  44.  
  45. 2. UW/PC SOURCE FILES.
  46.  
  47. This section describes the source files of UW/PC to give you a brief overview
  48. of what each one does.  This will help you in locating the best place to make
  49. modifications.  The new program structure (since version 1.05) is a highly
  50. integrated set of C++ classes.  The major class is the "UWClient" which defines
  51. all of the services needed to process a type of operation.  There are clients
  52. for terminal emulators, dialog boxes, file transfers, etc.  The principle
  53. method of expanding UW/PC is through the introduction of new clients.
  54.  
  55.     COMMS.C        Serial communications routines for manipulating
  56.             the PC's serial ports.
  57.     COMMTEST.C    A test version of COMMS.C that doesn't talk to
  58.             the serial ports - useful under 386 Enhanced Mode
  59.             of Windows 3.0 to do communications in the
  60.             background and test UW/PC at the same time (I'm a
  61.             VERY busy person!).
  62.     SYMBOLS.C    Symbol table manipulation routines for TERMCC.EXE.
  63.     TERMCC.C    Main module for TERMCC.EXE.
  64.     CLIENT.CPP    Primitive client class declarations.
  65.     DISPLAY.CPP    Handling for the display of characters within a
  66.             window.  Each display has a RAM buffer associated
  67.             with it for the window's contents.  There is some
  68.             Windows 3.0 specific code in this at the moment,
  69.             but it is nowhere near complete as yet.
  70.     SCREEN.CPP    Low-level hardware screen accessing routines for
  71.             the DOS version of UW/PC.
  72.     MAIN.CPP    Main module for the DOS version of UW/PC.
  73.     KEYS.CPP    Keyboard handling routines.  This module translates
  74.             function keys for those that are defined in the
  75.             configuration file.
  76.     UW.CPP        Central core of the UW protocol.  This module manages
  77.             all incoming characters and keypresses and sends them
  78.             to the required window clients.
  79.     CONFIG.CPP    Configuration handling - reads the configuration file
  80.             and initialises the "UWConfig" object that contains
  81.             all configuration information.
  82.     TERMINAL.CPP    Declarations for terminal emulations.  The processing
  83.             of capability files compiled by TERMCC is present in
  84.             this module.
  85.     TIMER.CPP    System timer routines to keep track of the current
  86.             time and to provide support for timeouts in file
  87.             transfer protocols.
  88.     DIALOG.CPP    Dialog box handling clients for the DOS version of
  89.             UW/PC.  Dialog boxes are special clients that only
  90.             interact with the user to get information to fire
  91.             up other clients such as file transfers.
  92.     FILES.CPP    Primitive file transfer protocols, including ASCII
  93.             upload, download and capture.
  94.     XMODEM.CPP    Implementation of the XMODEM and YMODEM file transfer
  95.             protocols.  Because of the "polling nature" of UW/PC's
  96.             client architecture, file transfers are quite
  97.             horrendous using finite state machines to control the
  98.             protocols - YUK!!  But it's the best I can do without
  99.             adding a mini multi-tasking operating system that would
  100.             impose too many overheads.
  101.     CLIPBD.CPP    Clipboard processing routines.
  102.     MOUSE.CPP    Routines for managing the mouse events.
  103.     CLIENTS.CPP    Top-level interface to the internal clients for FTP,
  104.             mail and DOS logins.
  105.     MAIL.CPP    Mail handling client for UW/PC.
  106.     LOGIN.CPP    Login handling client for UW/PC.
  107.     FTP.CPP        Handling for the UWFTP protocol ** not done yet **.
  108.     CLIENT.H    Declarations for the major client types.
  109.     DISPLAY.H    Declarations for the window display handling routines.
  110.     EXTERN.H    Declarations that are specific to either DOS or
  111.             Windows 3.0.  This file is not complete yet, since
  112.             the full Windows 3.0 port hasn't been done yet.
  113.     SCREEN.H    Declarations for the hardware screen handling routines.
  114.     COMMS.H        Declarations for the COMMS.C and COMMTEST.C modules.
  115.     UWPROTO.H    Constants, etc that are peculiar to the UW protocol.
  116.     UW.H        Declarations for the central UW protocol handling.
  117.     KEYS.H        Declarations for the routines in KEYS.CPP.
  118.     CONFIG.H    Defines the "UWConfiguration" class that defines every
  119.             type of thing that can be configured.
  120.     OPCODES.H    Opcodes for the abstract machine code produced by
  121.             TERMCC.EXE and processed by TERMINAL.CPP.
  122.     TIMER.H        Declarations for the timer handling routines.
  123.     FILES.H        Definitions of the file transfer classes.
  124.     DIALOG.H    Declarations of the various dialog box types.
  125.     SYMBOLS.H    Declarations for TERMCC's symbol table routines.
  126.     CLIPBD.H    Declarations for the clipboard clients.
  127.     MOUSE.H        Declarations for the mouse handling routines.
  128.     MAIL.H        Declarations for the mail handling client.
  129.     LOGIN.H        Declarations for the login handling client.
  130.     FTP.H        Declarations for the FTP handling client ** not done **.
  131.     TERMCC.L    Lexical analysis declarations for TERMCC that must be
  132.             processed by FLEX.
  133.     TERMCC.Y    Syntactical analysis declarations for TERMCC that must
  134.             be processed by BISON.
  135.     VT52.CAP    Capability file for the VT52 terminal type.  Compile
  136.             this with the TERMCC.EXE program (see the makefile
  137.             for more information on compiling this file).
  138.     ADM31.CAP    Capability file for the ADM31 terminal type.
  139.     ANSI.CAP    Capability file for the ANSI terminal type.
  140.  
  141. 3. FUTURE ENHANCEMENTS.
  142.  
  143. This section describes some of the upcoming future enhancements, their possible
  144. version release numbers.  [Note: since writing this list, some of the version
  145. numbers have changed: I'm planning to get the Windows 3.0 version working as
  146. soon as possible.]
  147.  
  148.         1. A version for Microsoft Windows 3.0 - all singing, all dancing.
  149.            [Version 2.50].
  150.         2. Uploading and downloading protocols and possible external
  151.            protocol programs [more in Version 2.10].
  152.         3. VT100, VT102 terminal types.  [Vers